Slide 1 / 22
Front-End Masterclass • Semester 2

BAB 8 — Laravel Fundamental

Masuk ke Dunia Backend Framework 🚀

Tekan atau klik tombol › untuk mulai

Daftar Isi Interaktif

Apa Saja yang Kita Pelajari?

Klik topik mana pun untuk langsung melompat ke slidenya 👇

Analogi 1 • Dapur Restoran

Apa Itu Laravel?

🏠 Dapur = Framework
👨‍🍳
🍳
🔥
💨
💨
💨
🍽️
🧑‍🍽️

Chef (Developer) memasak di dapur (Laravel) → hidangan (Website) diantar ke tamu (User)

Bayangkan kamu mau buka restoran. Daripada bikin dapur dari nol — beli kompor, atur pipa, pasang listrik — kamu sewa dapur profesional yang sudah lengkap.

Laravel adalah dapur itu: sebuah PHP Framework open-source yang sudah menyediakan semua peralatan agar kamu, sang chef, tinggal fokus memasak (menulis logika aplikasi).

PHP FrameworkOpen SourceMVC-basedGratis
Perbandingan Visual

Kenapa Harus Laravel?

PHP Murni vs Laravel — mana yang bikin hidup lebih mudah?

Lambat
PHP Murni
Kecepatan Ngoding
Cepat
Laravel
Kecepatan Ngoding
Manual
PHP Murni
Keamanan
Built-in
Laravel
Keamanan
🗃️
Eloquent ORM
Akses database pakai PHP, tanpa nulis SQL panjang.
🎨
Blade
Template engine rapi untuk bikin tampilan.
🛠️
Artisan
Asisten CLI yang bikin file otomatis.
🛣️
Routing Cantik
URL bersih & mudah diatur.
Step-by-Step

Instalasi Laravel

Pastikan dulu prasyarat ini sudah terpasang:

  • PHP ≥ 8.1 — bahasa intinya
  • Composer — manajer paket PHP
  • Node.js — untuk asset frontend
terminal — bash
composer create-project laravel/laravel nama-project
cd nama-project
php artisan serve

💡 Setelah php artisan serve, buka localhost:8000 — halaman selamat datang Laravel akan muncul!

Analogi 2 • Belanja Online

Apa Itu Composer?

📦 Packagist = Toko Online
🏪
🚚📦
🏠
🧑‍💻
📥

Kamu pesan (require) → Composer cari di toko (Packagist) → kurir antar paket ke proyekmu otomatis

Composer itu seperti aplikasi belanja online untuk kode. Kamu cukup bilang "aku butuh paket X", Composer yang carikan di toko (Packagist), unduh, dan pasang ke proyekmu.

composer.json
{
  "require": {
    "php": "^8.1",
    "laravel/framework": "^11.0"
  }
}
Interactive Explorer

Struktur Folder Laravel

Klik folder untuk buka/tutup • arahkan kursor untuk lihat fungsinya

📁 app/
Jantung aplikasi — berisi Models & Controllers.
📁 routes/
Peta jalan: web.php menentukan URL aplikasi.
📁 resources/views/
Tampilan Blade (.blade.php) yang dilihat user.
📁 public/
Pintu depan — file yang bisa diakses browser.
Flowchart + Analogi 3 • Restoran

MVC — Konsep Inti Laravel

🌐 User Request
🛣️ Router
🧑‍💼 Controller
🍳 Model
🗃️ Database
🍽️ View
✅ Response

Router → Controller → (Model ↔ Database) & (View) → Response

🍳 Model = Dapur + Bahan Baku
Mengurus data (database) — bahan mentah masakan.
🍽️ View = Meja Makan
Yang dilihat pelanggan — tampilan (UI).
🧑‍💼 Controller = Pelayan
Koordinator yang lari antara dapur & meja — otak logika.
M dari MVC

Model — Eloquent ORM

Setiap Model mewakili satu tabel di database 🗃️

app/Models/User.php
<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $fillable = ['name', 'email'];
}

Tabel users di database ↔ class User di PHP. Satu baris tabel = satu objek PHP. Inilah sihir ORM.

contoh query
User::all();          // ambil semua user
User::find(1);        // cari user id = 1
User::where('email', $e)->first();
V dari MVC

View — Blade Template

Tampilan yang dilihat user — disusun seperti puzzle 🧩

resources/views/home.blade.php
@extends('layouts.app')

@section('content')
  <h1>Halo, {{ $nama }}!</h1>
  <p>Selamat datang di website-ku.</p>
@endsection

@extends meminjam kerangka layout induk, @section mengisi bagian tertentu, dan @yield (di layout) menyiapkan slot kosongnya.

🧩 Blade ≠ HTML biasa
Di dalam Blade kamu bisa pakai logika (perulangan, kondisi) dan tetap rapi. Hasil akhirnya tetap HTML murni untuk browser.
C dari MVC • Otak Aplikasi

Controller — Penghubung M & V

M
V
C
M
V
C

Kubus M-V-C berputar — tiga sisi, satu kesatuan.

app/Http/Controllers/UserController.php
class UserController extends Controller
{
    public function index()
    {
        $users = User::all();        // ambil dari Model
        return view('users', [       // kirim ke View
            'users' => $users
        ]);
    }
}

Controller menerima request → ambil data dari Model → kirim ke View.

Analogi • GPS Aplikasi

Routing — Peta Jalan Aplikasi

🚗
📍
🧭 URL = tujuan • Route = jalan
flowchart LR U([Ketik URL]) --> RT{Route Match?} RT -->|Ya| CT[Controller] RT -->|Tidak| E[404] CT --> RS([Response]) classDef o fill:#FF6B35,stroke:#E74C3C,color:#0D0D0D; class U,RT,CT,RS,E o;

Routing ibarat GPS: URL yang diketik user = tujuan, Route = peta jalannya, Controller = sopir yang mengantar.

routes/web.php
Route::get('/', [HomeController::class, 'index']);
Route::get('/about', [PageController::class, 'about']);
Route::post('/contact', [PageController::class, 'send']);
Route::resource('posts', PostController::class);
Direktif Blade

Blade Template (Lanjutan)

Kode Blade (kiri) berubah jadi HTML (kanan) 🔁

blade
@foreach($produk as $p)
  <li>{{ $p }}</li>
@endforeach

@if($login)
  <p>Halo!</p>
@endif
html output
<li>Baju</li>
<li>Celana</li>
<li>Topi</li>

<p>Halo!</p>
@if@foreach@extends@include@csrf@yield
💡 Template inheritance: satu layout master dipakai ulang oleh banyak halaman — hemat & konsisten.
Swiss Army Knife

Artisan — Asisten CLI Laravel

Coba ketik perintah di terminal mini ini, lalu Enter 👇

artisan — bash
~/app$ php artisan
perintah penting
php artisan serve            # jalankan server lokal
php artisan make:model       # buat model
php artisan make:controller  # buat controller
php artisan migrate          # jalankan migrasi DB
php artisan route:list       # lihat semua route
Demo Visual

php artisan serve

localhost:8000
🔥
Laravel
Halaman welcome berhasil tampil!
output terminal
$ php artisan serve

   INFO  Server running on [http://127.0.0.1:8000].

  Press Ctrl+C to stop the server
⚠️ Troubleshooting
Port 8000 sudah dipakai? Pakai port lain:
php artisan serve --port=8001
Animasi Lengkap

Perjalanan Sebuah Request

Dari user klik tombol sampai data tampil — 7 tahap ⚡

1🌐 Browser mengirim request ke server
2🛣️ Route mencocokkan URL yang diminta
3🧑‍💼 Controller yang sesuai dipanggil
4📦 Controller meminta data ke Model
5🗃️ Model menjalankan query ke Database
6🎨 Controller mengirim data ke View
7✅ View me-render HTML → dikirim ke Browser
Mini Project Preview

Company Profile dengan Laravel

Inilah yang akan kamu bangun nanti! 🏢

Home
About
Services
Contact

Sebuah website profil perusahaan dengan 4 halaman: Home, About, Services, dan Contact.

🧱 Tech Stack
LaravelBladeBootstrap / TailwindRouting
Step-by-Step

Roadmap Mini Project

Klik tiap langkah untuk lihat detailnya 🗺️

1 · Setup
composer create-project & php artisan serve
2 · Routes
Definisikan semua URL di routes/web.php
3 · Controller
Buat PageController penanganan tiap halaman
4 · Views
Buat file Blade + layout master
5 · Styling
Percantik dengan CSS / Bootstrap / Tailwind
6 · Deploy
Jalankan di localhost & rekam demo
Mind Map Interaktif

Rangkuman BAB 8

Klik tiap cabang untuk ringkasannya 🧠

Laravel
Klik salah satu node di atas untuk melihat ringkasannya ✨
Latihan 1

🔧 Setup Laravel Pertamamu

  • Install Composer (jika belum)
  • Buat project: composer create-project laravel/laravel company-profile
  • Masuk folder: cd company-profile
  • Jalankan: php artisan serve
  • Buka localhost:8000
  • Screenshot halaman welcome → submit ke Classroom

Centang tiap langkah saat selesai ✅

⏱️ Waktu Pengerjaan
20:00
Latihan 2

🛣️ Route & Controller

  • Buat route GET '/about' di web.php
  • php artisan make:controller PageController
  • Tambah method about() di controller
  • Return view 'about' dari method
  • Buat about.blade.php di resources/views/
  • Isi HTML sederhana profil dirimu
starter template
// routes/web.php
Route::get('/about', [PageController::class, 'about']);

// PageController.php
public function about() {
    return view('about');
}
⏱️ Waktu Pengerjaan
30:00
Tugas Akhir BAB 8

🏢 Website Company Profile

📋 Spesifikasi
✅ Minimal 4 halaman: Home, About, Services, Contact
✅ Pakai Blade dengan 1 layout master
✅ Routing untuk semua halaman
✅ 1 Controller menangani semua halaman
✅ Styling bebas (Bootstrap/Tailwind/CSS)
✅ Rekam video demo 2–3 menit

🗓️ Deadline: 2 minggu dari hari ini.

🏆 Kriteria Penilaian
KriteriaBobot
Struktur MVC benar30%
Blade template digunakan25%
Tampilan menarik20%
Routing lengkap15%
Video demo10%

🎉 Selamat! Kamu sudah menamatkan BAB 8.

Tekan Esc untuk skip animasi • navigasi